#ifndef _ZERO_BOOT_LAYOUT_H
#define _ZERO_BOOT_LAYOUT_H
#define REAL_MODE_CS			0x0
#define REAL_MODE_DS			REAL_MODE_CS
#define REAL_MODE_ES			REAL_MODE_CS
#define REAL_MODE_SS			REAL_MODE_CS
#define REAL_MODE_SP			0xf000

#define PROTECT_MODE_CS			0x8
#define PROTECT_MODE_DS			0x10
#define PROTECT_MODE_TSS		0x28
#define PROTECT_MODE_LDT		0x30

#define TRAMPOLINE				0x7c00
#define TRAMPOLINE_SIZE			0x200
#define BOOTMAIN				REAL_MODE_SP
#define BOOTMAIN_SIZE			0x1000
#define ZEROIMAGE				0x0

#define ZEROIMAGE_TEMPORARY_ADDR	0x40000
#define CXXFIX_TEST_ELF_DOS_ADDR	0x50000
#define CXXPIC_TEST_ELF_DOS_ADDR	0x60000
#define CORBAFIX_TEST_ELF_DOS_ADDR	0x70000
#define CORBAPIC_TEST_ELF_DOS_ADDR	0x80000
#define ELF_LENGTH					0x10000

// See script/deployOS.sh
#define ZEROIMAGE_DISK_OFFSET			63
#define CXXFIX_TEST_ELF_DISK_OFFSET		189
#define CXXPIC_TEST_ELF_DISK_OFFSET		315
#define CORBAFIX_TEST_ELF_DISK_OFFSET	441
#define CORBAPIC_TEST_ELF_DISK_OFFSET	567
#define DISK_SECTOR_COUNT				126

// Be used to initialize memory subsystem.
#define MEMORY_TEMP_ADDRESS		0x200000

#define PAGE_SIZE				0x1000
#endif
